public class QueueDemo<E>{
    private E[] arr=(E[]) new Object[20];
    private int frist=0;
    private int last=0;
    private int flag=0;
    public void add(E x){
        if(frist==last&&flag!=0){
            E[]arrx=(E[]) new Object[arr.length*2];
            int j=0;
            for(int i=frist;i<arr.length;i=(i+1)%arr.length){
                arrx[j]=arr[i];
                j++;
            }
            frist=0;
            last=j;
            arr=arrx;
        }
        arr[last]=x;
        last=(last+1)%arr.length;
        flag++;
    }
    public E get(){
        if(flag>0){
            E x=arr[frist];
            flag--;
            frist=(frist+1)%arr.length;
            return x;
        }else{
            return null;
        }
    }
    public boolean contains(){
        if(flag==0){
            return true;
        }else{
            return false;
        }
    }
}
